package com.egoo.ticket.server.dao;

import com.egoo.ticket.server.pojo.entity.EwsRole;
import com.egoo.ticket.server.pojo.vo.InteractiveDataVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * @author Administrator
 */

@Component
public interface EwsRoleDao {
	/**
	 * TODO 查询角色列表
	 * @param searchMap
	 * @return
	 */
	List<EwsRole> selectRolesListByCondition(Map<String, Object> searchMap);

	/**
	 * TODO
	 * @param searchMap
	 * @return
	 */
	List<InteractiveDataVo> selectRolesInteractiveByCondition(Map<String, Object> searchMap);

	/**
	 * TODO 通过id查询对应角色
	 *
	 * @param
	 * @param id
	 * @return
	 */
	EwsRole selectByRoleId(@Param("id") String id,
						   @Param("tenantId") String tenantId);

	/**
	 * TODO 批量插入角色
	 * @param ewsRoles
	 * @return
	 */
	Long insertBatch(@Param("ewsRoles") List<EwsRole> ewsRoles);

	/**
	 * TODO 批量更新
	 * @param ewsRoles
	 * @return
	 */
	Long updateBatch(@Param("ewsRoles") List<EwsRole> ewsRoles);

	/**
	 * TODO 更新
	 * @param ewsRole
	 * @return
	 */
	Long update(@Param("ewsRole") EwsRole ewsRole);

	/**
	 * TODO 删除所有角色
	 * @return
	 * @param tenantId
	 */
	Long deleteAllRole(@Param("tenantId") String tenantId);

	/**
	 * TODO 通过用户id查询对应角色列表
	 * @param userId
	 * @return
	 */
	List<EwsRole> selectRolesByUserId(@Param("userId") String userId,
									  @Param("tenantId")String tenantId);

	Integer delete(Map<String, Object> map);
}
